package com.qire.common.widget.adapter.auto;

import androidx.databinding.ViewDataBinding;

/**
 * 自动适配变量接口，使用Summer系列的自动适配器的元素都应该实现这个接口，以便完成 View 与 Variable 的绑定。
 * ViewDataBinding 具体完成绑定的行为会将自己作为参数来调用 {@link AutoVariable#bindVariable bindVariable} 完成绑定；<br />
 * Variable 是 Xml 布局中 <variable/> 标签对应具体实例对象
 * @param <VD> 目标绑定器
 */
public interface AutoVariable<VD extends ViewDataBinding> {
    /**
     * 实现这个方法并完成具体绑定行为或者其他过滤判定，你可以通过调用 {@link ViewDataBinding#setVariable(int, Object)} 来完成相关的绑定，
     * 也可以通过指定具体泛型 {@code VD} 来使用对应具体的 setter 方法完成绑定。(setter 满足javabean规范)
     * @param viewBind ViewDataBinding 的具体生成实现类。
     */
    void bindVariable(VD viewBind);
}